package testes;

import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;

import dominio.DescricaoProduto;
import dominio.ItemVenda;

public class ItemVendaTest {

	@DataProvider
	public Object[][] getDescricaoProdutosEQuantidade() {
		return new Object[][] { { "01", 3.75, "Chocolate Talento", 5 },
				{ "02", 1.50, "Chiclete Trident", 10 } };
	}

	@Test(dataProvider = "getDescricaoProdutosEQuantidade")
	public void construtorDeveSetarDescricaoProdutosEQuantidade(String id, double preco, String descricao, int quantidade) {
		DescricaoProduto descProd = new DescricaoProduto(id, preco, descricao);
		ItemVenda itemVenda = new ItemVenda(descProd, quantidade);
		assertTrue(itemVenda.getDescricaoProduto().equals(descProd));
		assertEquals(itemVenda.getQuantidade(), quantidade);
	}

	@Test(dataProvider = "getDescricaoProdutosEQuantidade")
	public void toString(String id, double preco, String descricao, int quantidade) {
		DescricaoProduto descProd = new DescricaoProduto(id, preco, descricao);
		ItemVenda itemVenda = new ItemVenda(descProd, quantidade);
		assertEquals(itemVenda.toString(),  descProd.getDescricao() + "\t    " + quantidade + "  \t\t" + preco * quantidade +'\n');
	}
}
